package com.unitd.modules.sys.entity;

import com.unitd.comm.entity.SysEntity;

import javax.persistence.Column;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;

/**
 * @desc 机构信息管理
 * @filename SysOrg.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0 
 * @date 2017-04-26
 */ 
@Table(name = "sys_org")
public class SysOrg extends SysEntity {

	/** 机构编号 */
	@Column(name = "org_no")
	private String orgNo;
	/** 上级机构 */
	@Column(name = "parent_no")
	private String parentNo;
	/** 核心机构代码 */
	@Column(name = "org_code")
	private String orgCode;
	/** 金融机构标识码 */
	@Column(name = "branch_code")
	private String branchCode;
	/** 机构名称 */
	@Column(name = "org_name")
	private String orgName;
	/** 中文简称 */
	@Column(name = "short_name")
	private String shortName;
	/** 机构地址 */
	private String address;
	/** 英文名称 */
	@Column(name = "en_name")
	private String enName;
	/** 英文简称 */
	@Column(name = "short_en_name")
	private String shortEnName;
	/** 英文地址 */
	@Column(name = "en_address")
	private String enAddress;
	/** 机构级别 */
	private String rank;
	/** SWIFTCODE */
	@Column(name = "swift_code")
	private String swiftCode;
	/** 是否虚拟机构(0:是;1:否) */
	@Column(name = "virtual_flag")
	private String virtualFlag;
	/** 业务处理机构(0:是;1:否) */
	@Column(name = "buss_flag")
	private String bussFlag;
	/** 是否申报机构(0:是;1:否) */
	@Column(name = "declare_flag")
	private String declareFlag;
	/** 外汇经营权限(0:是;1:否) */
	@Column(name = "foreign_flag")
	private String foreignFlag;
	/** 是否有汇率发布权限 */
	@Column(name = "parities_flag")
	private String paritiesFlag;
	/** 对公对私标识(0:对公;1:对私) */
	@Column(name = "corp_kind")
	private String corpKind;
	/** 业务编号识别序号 */
	@Column(name = "buss_code_no")
	private String bussCodeNo;
	/** 所属区域 */
	@Column(name = "area_id")
	private String areaId;
	/** 代理执行机构 */
	@Column(name = "execute_org_no")
	private String executeOrgNo;
	/** 是否国结管理机构 */
	@Column(name = "manage_flag")
	private String manageFlag;
	/** 大额行号 */
	@Column(name = "big_bank_no")
	private String bigBankNo;
	/** 大额行名称 */
	@Column(name = "big_bank_name")
	private String bigBankName;
	/** 联系人 */
	@Column(name = "link_man")
	private String linkMan;
	/** 联系电话 */
	private String telephone;
	/** 传真 */
	@Column(name = "fax_no")
	private String faxNo;
	/** 机构状态(0:可用; 1:不可用) */
	private String state;
	/** 排序 */
	private Long sort;

	/********* 与数据存储无关,但展示或其他关联时需要用的属性 *********/
	/** 父机构名称 */
	@Transient
	private String parentName;
	@Transient
	/** 父级菜单 */
	private SysMenu parent;
	/** 做数据展示的层级菜单列表 */
	@Transient
	private List<SysOrg> sonList;

	/**
	 * @desc 构造方法 SysOrg
	 */
	public SysOrg(String id, String orgNo, String parentNo, String orgCode, String branchCode, String orgName, String shortName, String address, String enName, String shortEnName, String enAddress, String rank, String swiftCode, String virtualFlag, String bussFlag, String declareFlag, String foreignFlag, String paritiesFlag, String corpKind, String bussCodeNo, String areaId, String executeOrgNo, String manageFlag, String bigBankNo, String bigBankName, String linkMan, String telephone, String faxNo, String state, Long sort, String createBy, Date createDate, String updateBy, Date updateDate, String remarks, String delFlag) {
		this.id = id;
		this.orgNo = orgNo;
		this.parentNo = parentNo;
		this.orgCode = orgCode;
		this.branchCode = branchCode;
		this.orgName = orgName;
		this.shortName = shortName;
		this.address = address;
		this.enName = enName;
		this.shortEnName = shortEnName;
		this.enAddress = enAddress;
		this.rank = rank;
		this.swiftCode = swiftCode;
		this.virtualFlag = virtualFlag;
		this.bussFlag = bussFlag;
		this.declareFlag = declareFlag;
		this.foreignFlag = foreignFlag;
		this.paritiesFlag = paritiesFlag;
		this.corpKind = corpKind;
		this.bussCodeNo = bussCodeNo;
		this.areaId = areaId;
		this.executeOrgNo = executeOrgNo;
		this.manageFlag = manageFlag;
		this.bigBankNo = bigBankNo;
		this.bigBankName = bigBankName;
		this.linkMan = linkMan;
		this.telephone = telephone;
		this.faxNo = faxNo;
		this.state = state;
		this.sort = sort;
		this.createBy = createBy;
		this.createDate = createDate;
		this.updateBy = updateBy;
		this.updateDate = updateDate;
		this.remarks = remarks;
		this.delFlag = delFlag;
	}

	/**
	 * @desc 构造方法 SysOrg
	 */
	public SysOrg() {
		super();
	}

	/**
	 * @desc 获取机构编号
	 * @return org_no - 机构编号
	 */
	public String getOrgNo() {
		return orgNo;
	}

	/**
	 * @desc 设置机构编号
	 * @param orgNo 机构编号
	 */
	public void setOrgNo(String orgNo) {
		this.orgNo = orgNo == null ? null : orgNo.trim();
	}

	/**
	 * @desc 获取上级机构
	 * @return parent_no - 上级机构
	 */
	public String getParentNo() {
		return parentNo;
	}

	/**
	 * @desc 设置上级机构
	 * @param parentNo 上级机构
	 */
	public void setParentNo(String parentNo) {
		this.parentNo = parentNo == null ? null : parentNo.trim();
	}

	/**
	 * @desc 获取核心机构代码
	 * @return org_code - 核心机构代码
	 */
	public String getOrgCode() {
		return orgCode;
	}

	/**
	 * @desc 设置核心机构代码
	 * @param orgCode 核心机构代码
	 */
	public void setOrgCode(String orgCode) {
		this.orgCode = orgCode == null ? null : orgCode.trim();
	}

	/**
	 * @desc 获取金融机构标识码
	 * @return branch_code - 金融机构标识码
	 */
	public String getBranchCode() {
		return branchCode;
	}

	/**
	 * @desc 设置金融机构标识码
	 * @param branchCode 金融机构标识码
	 */
	public void setBranchCode(String branchCode) {
		this.branchCode = branchCode == null ? null : branchCode.trim();
	}

	/**
	 * @desc 获取机构名称
	 * @return org_name - 机构名称
	 */
	public String getOrgName() {
		return orgName;
	}

	/**
	 * @desc 设置机构名称
	 * @param orgName 机构名称
	 */
	public void setOrgName(String orgName) {
		this.orgName = orgName == null ? null : orgName.trim();
	}

	/**
	 * @desc 获取中文简称
	 * @return short_name - 中文简称
	 */
	public String getShortName() {
		return shortName;
	}

	/**
	 * @desc 设置中文简称
	 * @param shortName 中文简称
	 */
	public void setShortName(String shortName) {
		this.shortName = shortName == null ? null : shortName.trim();
	}

	/**
	 * @desc 获取机构地址
	 * @return address - 机构地址
	 */
	public String getAddress() {
		return address;
	}

	/**
	 * @desc 设置机构地址
	 * @param address 机构地址
	 */
	public void setAddress(String address) {
		this.address = address == null ? null : address.trim();
	}

	/**
	 * @desc 获取英文名称
	 * @return en_name - 英文名称
	 */
	public String getEnName() {
		return enName;
	}

	/**
	 * @desc 设置英文名称
	 * @param enName 英文名称
	 */
	public void setEnName(String enName) {
		this.enName = enName == null ? null : enName.trim();
	}

	/**
	 * @desc 获取英文简称
	 * @return short_en_name - 英文简称
	 */
	public String getShortEnName() {
		return shortEnName;
	}

	/**
	 * @desc 设置英文简称
	 * @param shortEnName 英文简称
	 */
	public void setShortEnName(String shortEnName) {
		this.shortEnName = shortEnName == null ? null : shortEnName.trim();
	}

	/**
	 * @desc 获取英文地址
	 * @return en_address - 英文地址
	 */
	public String getEnAddress() {
		return enAddress;
	}

	/**
	 * @desc 设置英文地址
	 * @param enAddress 英文地址
	 */
	public void setEnAddress(String enAddress) {
		this.enAddress = enAddress == null ? null : enAddress.trim();
	}

	/**
	 * @desc 获取机构级别
	 * @return rank - 机构级别
	 */
	public String getRank() {
		return rank;
	}

	/**
	 * @desc 设置机构级别
	 * @param rank 机构级别
	 */
	public void setRank(String rank) {
		this.rank = rank == null ? null : rank.trim();
	}

	/**
	 * @desc 获取SWIFTCODE
	 * @return swift_code - SWIFTCODE
	 */
	public String getSwiftCode() {
		return swiftCode;
	}

	/**
	 * @desc 设置SWIFTCODE
	 * @param swiftCode SWIFTCODE
	 */
	public void setSwiftCode(String swiftCode) {
		this.swiftCode = swiftCode == null ? null : swiftCode.trim();
	}

	/**
	 * @desc 获取是否虚拟机构(0:是;1:否)
	 * @return virtual_flag - 是否虚拟机构(0:是;1:否)
	 */
	public String getVirtualFlag() {
		return virtualFlag;
	}

	/**
	 * @desc 设置是否虚拟机构(0:是;1:否)
	 * @param virtualFlag 是否虚拟机构(0:是;1:否)
	 */
	public void setVirtualFlag(String virtualFlag) {
		this.virtualFlag = virtualFlag == null ? null : virtualFlag.trim();
	}

	/**
	 * @desc 获取业务处理机构(0:是;1:否)
	 * @return buss_flag - 业务处理机构(0:是;1:否)
	 */
	public String getBussFlag() {
		return bussFlag;
	}

	/**
	 * @desc 设置业务处理机构(0:是;1:否)
	 * @param bussFlag 业务处理机构(0:是;1:否)
	 */
	public void setBussFlag(String bussFlag) {
		this.bussFlag = bussFlag == null ? null : bussFlag.trim();
	}

	/**
	 * @desc 获取是否申报机构(0:是;1:否)
	 * @return declare_flag - 是否申报机构(0:是;1:否)
	 */
	public String getDeclareFlag() {
		return declareFlag;
	}

	/**
	 * @desc 设置是否申报机构(0:是;1:否)
	 * @param declareFlag 是否申报机构(0:是;1:否)
	 */
	public void setDeclareFlag(String declareFlag) {
		this.declareFlag = declareFlag == null ? null : declareFlag.trim();
	}

	/**
	 * @desc 获取外汇经营权限(0:是;1:否)
	 * @return foreign_flag - 外汇经营权限(0:是;1:否)
	 */
	public String getForeignFlag() {
		return foreignFlag;
	}

	/**
	 * @desc 设置外汇经营权限(0:是;1:否)
	 * @param foreignFlag 外汇经营权限(0:是;1:否)
	 */
	public void setForeignFlag(String foreignFlag) {
		this.foreignFlag = foreignFlag == null ? null : foreignFlag.trim();
	}

	/**
	 * @desc 获取是否有汇率发布权限
	 * @return parities_flag - 是否有汇率发布权限
	 */
	public String getParitiesFlag() {
		return paritiesFlag;
	}

	/**
	 * @desc 设置是否有汇率发布权限
	 * @param paritiesFlag 是否有汇率发布权限
	 */
	public void setParitiesFlag(String paritiesFlag) {
		this.paritiesFlag = paritiesFlag == null ? null : paritiesFlag.trim();
	}

	/**
	 * @desc 获取对公对私标识(0:对公;1:对私)
	 * @return corp_kind - 对公对私标识(0:对公;1:对私)
	 */
	public String getCorpKind() {
		return corpKind;
	}

	/**
	 * @desc 设置对公对私标识(0:对公;1:对私)
	 * @param corpKind 对公对私标识(0:对公;1:对私)
	 */
	public void setCorpKind(String corpKind) {
		this.corpKind = corpKind == null ? null : corpKind.trim();
	}

	/**
	 * @desc 获取业务编号识别序号
	 * @return buss_code_no - 业务编号识别序号
	 */
	public String getBussCodeNo() {
		return bussCodeNo;
	}

	/**
	 * @desc 设置业务编号识别序号
	 * @param bussCodeNo 业务编号识别序号
	 */
	public void setBussCodeNo(String bussCodeNo) {
		this.bussCodeNo = bussCodeNo == null ? null : bussCodeNo.trim();
	}

	/**
	 * @desc 获取所属区域
	 * @return area_id - 所属区域
	 */
	public String getAreaId() {
		return areaId;
	}

	/**
	 * @desc 设置所属区域
	 * @param areaId 所属区域
	 */
	public void setAreaId(String areaId) {
		this.areaId = areaId == null ? null : areaId.trim();
	}

	/**
	 * @desc 获取代理执行机构
	 * @return execute_org_no - 代理执行机构
	 */
	public String getExecuteOrgNo() {
		return executeOrgNo;
	}

	/**
	 * @desc 设置代理执行机构
	 * @param executeOrgNo 代理执行机构
	 */
	public void setExecuteOrgNo(String executeOrgNo) {
		this.executeOrgNo = executeOrgNo == null ? null : executeOrgNo.trim();
	}

	/**
	 * @desc 获取是否国结管理机构
	 * @return manage_flag - 是否国结管理机构
	 */
	public String getManageFlag() {
		return manageFlag;
	}

	/**
	 * @desc 设置是否国结管理机构
	 * @param manageFlag 是否国结管理机构
	 */
	public void setManageFlag(String manageFlag) {
		this.manageFlag = manageFlag == null ? null : manageFlag.trim();
	}

	/**
	 * @desc 获取大额行号
	 * @return big_bank_no - 大额行号
	 */
	public String getBigBankNo() {
		return bigBankNo;
	}

	/**
	 * @desc 设置大额行号
	 * @param bigBankNo 大额行号
	 */
	public void setBigBankNo(String bigBankNo) {
		this.bigBankNo = bigBankNo == null ? null : bigBankNo.trim();
	}

	/**
	 * @desc 获取大额行名称
	 * @return big_bank_name - 大额行名称
	 */
	public String getBigBankName() {
		return bigBankName;
	}

	/**
	 * @desc 设置大额行名称
	 * @param bigBankName 大额行名称
	 */
	public void setBigBankName(String bigBankName) {
		this.bigBankName = bigBankName == null ? null : bigBankName.trim();
	}

	/**
	 * @desc 获取联系人
	 * @return link_man - 联系人
	 */
	public String getLinkMan() {
		return linkMan;
	}

	/**
	 * @desc 设置联系人
	 * @param linkMan 联系人
	 */
	public void setLinkMan(String linkMan) {
		this.linkMan = linkMan == null ? null : linkMan.trim();
	}

	/**
	 * @desc 获取联系电话
	 * @return telephone - 联系电话
	 */
	public String getTelephone() {
		return telephone;
	}

	/**
	 * @desc 设置联系电话
	 * @param telephone 联系电话
	 */
	public void setTelephone(String telephone) {
		this.telephone = telephone == null ? null : telephone.trim();
	}

	/**
	 * @desc 获取传真
	 * @return fax_no - 传真
	 */
	public String getFaxNo() {
		return faxNo;
	}

	/**
	 * @desc 设置传真
	 * @param faxNo 传真
	 */
	public void setFaxNo(String faxNo) {
		this.faxNo = faxNo == null ? null : faxNo.trim();
	}

	/**
	 * @desc 获取机构状态(0:可用; 1:不可用)
	 * @return state - 机构状态(0:可用; 1:不可用)
	 */
	public String getState() {
		return state;
	}

	/**
	 * @desc 设置机构状态(0:可用; 1:不可用)
	 * @param state 机构状态(0:可用; 1:不可用)
	 */
	public void setState(String state) {
		this.state = state == null ? null : state.trim();
	}

	/**
	 * @desc 获取排序
	 * @return sort - 排序
	 */
	public Long getSort() {
		return sort;
	}

	/**
	 * @desc 设置排序
	 * @param sort 排序
	 */
	public void setSort(Long sort) {
		this.sort = sort;
	}

	public String getParentName() {
		return parentName;
	}

	public void setParentName(String parentName) {
		this.parentName = parentName;
	}

	public SysMenu getParent() {
		return parent;
	}

	public void setParent(SysMenu parent) {
		this.parent = parent;
	}

	public List<SysOrg> getSonList() {
		return sonList;
	}

	public void setSonList(List<SysOrg> sonList) {
		this.sonList = sonList;
	}
}